package com.umeox.watch.moto.dataservice.interfaces;

public interface IChat extends android.os.IInterface {

    String DESCRIPTOR = "com.umeox.watch.moto.dataservice.interfaces.IChat";
    int TRANSACTION_GETCHATMSG = (android.os.IBinder.FIRST_CALL_TRANSACTION);
    int TRANSACTION_SENDCHATMSG = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1);
    int TRANSACTION_UPLOADFILE = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2);
    int TRANSACTION_DOWNLOADFILE = (android.os.IBinder.FIRST_CALL_TRANSACTION + 3);

    /**
     * 获取最近聊天消息
     *
     * @param fid           接收用户ID
     * @param lastMessageId 消息ID, 客户端上最后收到一条消息的ID
     * @return byte[] Protobuf消息
     */
    byte[] getChatMsg(String deviceId, String fid, long lastMessageId) throws android.os.RemoteException;

    /**
     * 发送聊天消息
     * @param fid     发送用户ID
     * @param tid     接收用户ID
     * @param type    聊天类型 0：私聊，1：群聊
     * @param msgType 消息类型
     * @param msgTime 消息发送时间
     * @param msgBody     消息内容
     * @return String 服务端返回的消息id
     */
    String sendChatMsg(String fid, String tid, int type,long msgTime,int msgType, String msgBody) throws Exception;

    /**
     * 上传语聊文件
     * filePath   上传文件的本地全路径
     * 返回文件在服务器的地址
     */
    String uploadFile(String filePath) throws android.os.RemoteException;

    /**
     * 下载语聊文件
     * url   文件下载地址
     * filePath   文件下载成功后保存在本地的路径
     * 返回文件下载保存的路径
     */
    boolean downloadFile(String url, String filePath) throws android.os.RemoteException;
}
